A basic input/output system (BIOS) is the most fundamental software program which is loaded on a computer hardware system. Once the power of a computer system is turned on, execution of the BIOS will be performed by a flash memory on the motherboard, followed by the initialization of a subsystem, such as a chipset and a memory. The most fundamental function of the BIOS is to store the basic settings of a computer system and allow a user to set the state of the computer system and related parameters of hardware by means of the BIOS.
FIG. 1 is a schematic view of a conventional process flow of booting a computer system. As shown in FIG. 1, booting a computer system (step S10) requires execution of a power-on self test (POST) by a BIOS (step S11) to determine a basic configuration and functional state of system devices; meanwhile, the user may press a corresponding hotkey to enter a default main screen of the BIOS so as to adjust related settings. These basic programs are loaded to a memory of the computer system to enable the processor to execute boot-related initialization procedures, whenever the computer system is booted. Upon completion of the execution of the procedures, an operating system is reloaded (step S12), such that the operating system takes control of the system.
In general, a computer system has to comply with ACPI (Advanced Configuration and Power Interface) specification. Hence, once the computer system needs to enter S3 (suspend to RAM, STR) mode, S4 (suspend to disk, STD) mode, or S5 (soft-off) mode, the BIOS will let the operating system know which corresponding value is to be written to a sleep type register in a chipset, so as to be ready for the ensuing state. The aforesaid S3 mode is also known as a sleeping state which involves writing data to a random access memory (RAM), supplying power to the RAM only, and suspending the power supply to other devices. The aforesaid S4 mode is also known as a hibernate state which involves writing to a hard disk the data stored in the RAM and suspending the operation of devices, which means that the power supply to the devices is not suspended until after the data have been written to the hard disk. The aforesaid S5 mode is also known as a soft-off state which involves suspending the power supply to the computer system. The sleeping state, the hibernate state, and the soft-off state are major states of a typical computer system.
If the user selects the hibernate state or the soft-off state (step S13), a corresponding value will be written to the sleep type register in the chipset, such that the power supply to the computer system will be suspended according to the selected state (step S14). Rebooting the computer system again (step S10) entails re-executing the POST by the BIOS (step S11). Upon completion of the execution of the procedures, the operating system is reloaded (step S12). However, in doing so, the user is kept waiting a long time.
Furthermore, even if the user does not select the hibernate state or the soft-off state but selects a warm boot (step S15) for rebooting the computer system, the BIOS will re-execute the POST (step S11) and then load the operating system (step S12). However, in practice, it is not necessary to re-execute the POST, not only because the hardware of the computer system remains unchanged, but also because the hardware configuration setting data have already been stored in the RAM.
Execution of the POST by the BIOS entails performing a plurality of detection tasks, for example, detecting whether the user has pressed a corresponding hotkey or detecting for a new hardware device; as a result, the time lag between booting the computer system and loading the operating system is long. Hence, plenty of system manufactures endeavors to shorten the time taken to boot a computer system in order to allow users to shorten the time taken to load an operating system. At present, the commonest methods involve reducing a program code or skipping a common or specific task. However, the program code configured for mutual dependent relationship between a platform, a device, or a chipset is likely to be removed at times. In addition, it is extremely risky to determine which program code ought to be removed, and thus optimization can only be achieved by countless trials and errors and repeated verification.
In practice, BIOS manufacturers can use a custom-made program code to shorten the time taken to boot a computer system. However, considering user's experience, it is necessary for the BIOS to maintain its interaction with a user (such as loading a setting tool program, starting a checklist, or displaying an energy star logo and a manufacturer's logo) while executing the POST. Still, it takes six to seven seconds on average to boot a computer system with a custom-made program code. Hence, in this regard, a custom-made program code is not in wide use.
Although, during a boot process, the BIOS not only allows a user to press a hotkey for performing a mechanism for interrupting the booting procedure, but also displays a menu for changing different platform settings (such as the startup priority), the user usually chooses to load the operating system directly in general situations. Accordingly, it is imperative to create a fast boot procedure whereby a user can load the operating system quickly without waiting a long time, allow the user to select different boot modes, and enable the user to boot the computer system or configure a tool setting as needed.